package com.woniuxy.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.woniuxy.entity.RbacPerm;
import com.woniuxy.entity.dto.PermInfo;

import java.util.List;

/**
 * <p>
 * 权限表 服务类
 * </p>
 *
 * @author linKe
 * @since 2021-11-25
 */
public interface RbacPermService extends IService<RbacPerm> {
    /**
     * 根据角色id查询所有权限
     * @param roleId    角色
     * @return  权限结果集
     */
    List<RbacPerm> findByRoleId(int roleId);

    /**
     * 根据角色id查询所有权限 并带出角色信息
     * @param id    角色
     * @return  权限 角色 结果集
     */
    List<PermInfo> findPermInfoByRoleId(Integer id);

    /**
     * 分页查询
     * @param currentPage 当前页数
     * @param size      每页显示条数
     * @return  管理员结果集
     */
    List<RbacPerm> findAllPage(int currentPage, int size);

    /**
     * 根据id查询
     * @param id    管理员ID
     * @return  管理员对象
     */
    RbacPerm findOneById(int id);

    /**
     * 新增管理员
     * @param rbacPerm   管理员对象
     * @return  结果影响条数
     */
    int addPerm(RbacPerm rbacPerm);

    /**
     * 更新管理员
     * @param rbacPerm   管理员对象
     * @return  结果影响条数
     */
    int updatePerm(RbacPerm rbacPerm);

    /**
     * 删除管理员
     * @param id   管理员ID
     * @return  结果影响条数
     */
    int deletePerm(int id);
    /**
     * 查询所有管理员
     * @return  所有管理员结果集
     */
    List<RbacPerm> findAllPerm();
}
